home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 32 / biomrf.zip / MUTATE.INC < prev    next >
Text File  |  1989-07-14  |  1KB  |  36 lines

  1. ' Subroutine MUTATE
  2. ' This calculates the gene for mutation and the mutation occurring
  3. '
  4. ' The routine takes as parameters the array holding the biomorphs, which has
  5. ' biomorphs%(x%,y%) where x% is the biomorph & y% is the gene; and popn%,
  6. ' the number of biomorphs. This also takes care of limits such as the max.
  7. ' no. of offspring (gene 1) being 16 and no value can be < 1
  8.  
  9.  
  10. SUB MUTATE(biomorphs%(2),popn%)
  11.  
  12. local mut.gen,mg%,bio%
  13.  
  14. randomize timer
  15.  
  16. for bio%  = 1 to popn%
  17.  
  18.     mut.gen = rnd
  19.     mg% = int(mut.gen*9)+1
  20.     mut.gen = rnd
  21.     if mut.gen < 0.5 then
  22.         biomorphs%(bio%,mg%) = biomorphs%(bio%,mg%) - 1
  23.         if biomorphs%(bio%,mg%) = 0 then
  24.             biomorphs%(bio%,mg%) = 2
  25.         end if
  26.     else
  27.         biomorphs%(bio%,mg%) = biomorphs%(bio%,mg%) + 1
  28.     end if    
  29.         if biomorphs%(bio%,1) = 17 then biomorphs%(bio%,1) = 16
  30.     if biomorphs%(bio%,2) = 11 then biomorphs%(bio%,2) = 10
  31.     if biomorphs%(bio%,3) = 9 then biomorphs%(bio%,3) = 8
  32.     if biomorphs%(bio%,4) = 9 then biomorphs%(bio%,4) = 8
  33.  
  34. next bio%
  35.  
  36. end sub